[INFO] fetching crate cyclotomic 0.2.0...
[INFO] checking cyclotomic-0.2.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate cyclotomic 0.2.0 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate cyclotomic 0.2.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cyclotomic 0.2.0
[INFO] finished tweaking crates.io crate cyclotomic 0.2.0
[INFO] tweaked toml for crates.io crate cyclotomic 0.2.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] crate crates.io crate cyclotomic 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded radium v0.5.3
[INFO] [stderr]   Downloaded wyz v0.2.0
[INFO] [stderr]   Downloaded os_str_bytes v6.3.0
[INFO] [stderr]   Downloaded once_cell v1.13.1
[INFO] [stderr]   Downloaded combinations v0.1.0
[INFO] [stderr]   Downloaded quickcheck_macros v0.9.1
[INFO] [stderr]   Downloaded divisors v0.2.1
[INFO] [stderr]   Downloaded funty v1.1.0
[INFO] [stderr]   Downloaded antic v0.1.0
[INFO] [stderr]   Downloaded nom v6.2.1
[INFO] [stderr]   Downloaded regex v1.4.6
[INFO] [stderr]   Downloaded bitvec v0.19.6
[INFO] [stderr]   Downloaded rug v1.17.0
[INFO] [stderr]   Downloaded libc v0.2.132
[INFO] [stderr]   Downloaded gmp-mpfr-sys v1.4.10
[INFO] [stderr]   Downloaded sexp v1.1.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 9ca3495d1ccf4b1bb272769d0ff14f6a722cffd0a04ec5e913b5f4a152d569dc
[INFO] running `Command { std: "docker" "start" "-a" "9ca3495d1ccf4b1bb272769d0ff14f6a722cffd0a04ec5e913b5f4a152d569dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9ca3495d1ccf4b1bb272769d0ff14f6a722cffd0a04ec5e913b5f4a152d569dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9ca3495d1ccf4b1bb272769d0ff14f6a722cffd0a04ec5e913b5f4a152d569dc", kill_on_drop: false }`
[INFO] [stdout] 9ca3495d1ccf4b1bb272769d0ff14f6a722cffd0a04ec5e913b5f4a152d569dc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3b6a0d41c9278af91e9d148ec2520cbb181a09d8162065d764eb0f9e811cfec3
[INFO] running `Command { std: "docker" "start" "-a" "3b6a0d41c9278af91e9d148ec2520cbb181a09d8162065d764eb0f9e811cfec3", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling unicode-ident v1.0.3
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling gmp-mpfr-sys v1.4.10
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling radium v0.5.3
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]    Compiling az v1.2.1
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]    Compiling nom v6.2.1
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking os_str_bytes v6.3.0
[INFO] [stderr]    Compiling rug v1.17.0
[INFO] [stderr]     Checking wyz v0.2.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking funty v1.1.0
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking textwrap v0.15.0
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking aho-corasick v0.7.15
[INFO] [stderr]     Checking once_cell v1.13.1
[INFO] [stderr]     Checking combinations v0.1.0
[INFO] [stderr]     Checking sexp v1.1.4
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking bitvec v0.19.6
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]    Compiling antic v0.1.0
[INFO] [stderr]     Checking regex v1.4.6
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking divisors v0.2.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking quickcheck v0.9.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v3.2.17
[INFO] [stderr]    Compiling quickcheck_macros v0.9.1
[INFO] [stderr]     Checking clap v3.2.17
[INFO] [stderr]     Checking cyclotomic v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]    --> src/fields/sparse/basis.rs:213:57
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         &((k.clone() * n.clone()).into(): E / p.clone() + i.clone()),
[INFO] [stdout]     |                                                         ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]    --> src/fields/sparse/basis.rs:213:57
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         &((k.clone() * n.clone()).into(): E / p.clone() + i.clone()),
[INFO] [stdout]     |                                                         ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]   --> src/fields/sparse/mul.rs:25:68
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let new_exp = ((exp1.clone() + exp2.clone()).into(): E) % z1.order.clone();
[INFO] [stdout]    |                                                                    ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]   --> src/fields/sparse/mul.rs:25:68
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let new_exp = ((exp1.clone() + exp2.clone()).into(): E) % z1.order.clone();
[INFO] [stdout]    |                                                                    ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `BigRational`, `Signed`, `ToPrimitive`
[INFO] [stdout]  --> src/divisors/euclid.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use self::num::{BigInt, BigRational, Integer, One, Signed, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BigInt`
[INFO] [stdout]  --> src/divisors/library_divisors.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::num::{BigInt, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/polynomial/substitute.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::polynomial::polynomial::{Polynomial, Q, Z};
[INFO] [stdout]   |                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::BigInt`
[INFO] [stdout]  --> src/prime_factors/recursive_prime_factorize.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::BigInt;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Integer`
[INFO] [stdout]  --> src/fields/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::Integer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num::traits::Inv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpCoeffMap`
[INFO] [stdout]  --> src/fields/sparse/add.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::sparse::{ExpCoeffMap, Number};
[INFO] [stdout]   |                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Q`, `Z`
[INFO] [stdout]  --> src/fields/sparse/add.rs:4:67
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                   ^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::AddAssign`
[INFO] [stdout]  --> src/fields/sparse/add.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::AddAssign;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Q`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:4:73
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{CyclotomicFieldElement, MultiplicativeGroupElement, Q};
[INFO] [stdout]   |                                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_i64` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^ help: convert the identifier to upper camel case: `NumberI64`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_Z` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^ help: convert the identifier to upper camel case: `NumberZ`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `Zero`
[INFO] [stdout]  --> src/fields/dense/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]  --> src/fields/dense/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::traits::Inv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::*`
[INFO] [stdout]   --> src/fields/dense/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::fields::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::exponent::Exponent`
[INFO] [stdout]   --> src/fields/dense/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::fields::exponent::Exponent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/fields/dense/add.rs:2:70
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/dense/galois.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/structure/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]  --> src/fields/structure/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldElement`
[INFO] [stdout]  --> src/fields/linear_algebra/mod.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::fields::{CyclotomicFieldElement, FieldElement};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `MulAssign`
[INFO] [stdout]  --> src/fields/rational.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::{AddAssign, MulAssign};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::Q`
[INFO] [stdout]  --> src/character/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::Q;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/sparse/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `BigRational`, `Signed`, `ToPrimitive`
[INFO] [stdout]  --> src/divisors/euclid.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use self::num::{BigInt, BigRational, Integer, One, Signed, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/polynomial/construct.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/polynomial/negate.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/prime_counter/legendre.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     use std::path::Path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/prime_counter/meissel.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     use std::path::Path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/primes/primes.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Integer`
[INFO] [stdout]  --> src/fields/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::Integer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num::traits::Inv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpCoeffMap`
[INFO] [stdout]  --> src/fields/sparse/add.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::sparse::{ExpCoeffMap, Number};
[INFO] [stdout]   |                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Q`, `Z`
[INFO] [stdout]  --> src/fields/sparse/add.rs:4:67
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                   ^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::AddAssign`
[INFO] [stdout]  --> src/fields/sparse/add.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::AddAssign;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Q`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:4:73
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{CyclotomicFieldElement, MultiplicativeGroupElement, Q};
[INFO] [stdout]   |                                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_i64` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^ help: convert the identifier to upper camel case: `NumberI64`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_Z` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^ help: convert the identifier to upper camel case: `NumberZ`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `Zero`
[INFO] [stdout]  --> src/fields/dense/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]  --> src/fields/dense/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::traits::Inv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::exponent::Exponent`
[INFO] [stdout]   --> src/fields/dense/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::fields::exponent::Exponent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/fields/dense/add.rs:2:70
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/dense/galois.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/structure/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldElement`
[INFO] [stdout]  --> src/fields/linear_algebra/mod.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::fields::{CyclotomicFieldElement, FieldElement};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `MulAssign`
[INFO] [stdout]  --> src/fields/rational.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::{AddAssign, MulAssign};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::Q`
[INFO] [stdout]  --> src/character/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::Q;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/sparse/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&E: Exponent` is not satisfied
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ the trait `Exponent` is not implemented for `&E`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = &Exponent::math_mod(
[INFO] [stdout]     |                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `E` cannot be shared between threads safely
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ `E` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&E` to implement `Send`
[INFO] [stdout] note: required by a bound in `Exponent::math_mod`
[INFO] [stdout]    --> src/fields/exponent.rs:24:7
[INFO] [stdout]     |
[INFO] [stdout] 24  |     + Send
[INFO] [stdout]     |       ^^^^ required by this bound in `Exponent::math_mod`
[INFO] [stdout] ...
[INFO] [stdout] 75  |     fn math_mod(x: &Self, n: &Self) -> Self {
[INFO] [stdout]     |        -------- required by a bound in this associated function
[INFO] [stdout] help: consider further restricting this bound
[INFO] [stdout]     |
[INFO] [stdout] 120 |     E: Exponent + std::marker::Sync,
[INFO] [stdout]     |                 +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Div`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sub`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::MultiplicativeGroupElement`
[INFO] [stdout]  --> src/fields/dense/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::fields::MultiplicativeGroupElement;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::fields::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/polynomial/subtract.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{AddAssign, Neg, Sub, SubAssign};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]   --> src/fields/sparse/basis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::Mul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::MultiplicativeGroupElement`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::fields::MultiplicativeGroupElement;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&E: exponent::Exponent` is not satisfied
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ the trait `exponent::Exponent` is not implemented for `&E`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = &Exponent::math_mod(
[INFO] [stdout]     |                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `E` cannot be shared between threads safely
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ `E` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&E` to implement `Send`
[INFO] [stdout] note: required by a bound in `exponent::Exponent::math_mod`
[INFO] [stdout]    --> src/fields/exponent.rs:24:7
[INFO] [stdout]     |
[INFO] [stdout] 24  |     + Send
[INFO] [stdout]     |       ^^^^ required by this bound in `Exponent::math_mod`
[INFO] [stdout] ...
[INFO] [stdout] 75  |     fn math_mod(x: &Self, n: &Self) -> Self {
[INFO] [stdout]     |        -------- required by a bound in this associated function
[INFO] [stdout] help: consider further restricting this bound
[INFO] [stdout]     |
[INFO] [stdout] 120 |     E: Exponent + std::marker::Sync,
[INFO] [stdout]     |                 +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/dense/basis.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut n_div_powers = Exponent::factorise(&n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/fields/rational.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 158 |         self.is_zero()
[INFO] [stdout]     |         -------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser.rs:30:45
[INFO] [stdout]    |
[INFO] [stdout] 30 |         FromStr::from_str((sign.map_or("", |s| "-").to_owned() + x).as_str())
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 50 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cyclotomic` (lib) due to 5 previous errors; 50 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Div`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sub`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]  --> src/fields/structure/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/polynomial/subtract.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{AddAssign, Neg, Sub, SubAssign};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]   --> src/fields/sparse/basis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::Mul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/dense/basis.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut n_div_powers = Exponent::factorise(&n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/fields/rational.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 158 |         self.is_zero()
[INFO] [stdout]     |         -------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser.rs:30:45
[INFO] [stdout]    |
[INFO] [stdout] 30 |         FromStr::from_str((sign.map_or("", |s| "-").to_owned() + x).as_str())
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 50 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cyclotomic` (lib test) due to 5 previous errors; 50 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3b6a0d41c9278af91e9d148ec2520cbb181a09d8162065d764eb0f9e811cfec3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b6a0d41c9278af91e9d148ec2520cbb181a09d8162065d764eb0f9e811cfec3", kill_on_drop: false }`
[INFO] [stdout] 3b6a0d41c9278af91e9d148ec2520cbb181a09d8162065d764eb0f9e811cfec3
[INFO] checking cyclotomic-0.2.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate cyclotomic 0.2.0 into /workspace/builds/worker-5-tc2/source
[INFO] validating manifest of crates.io crate cyclotomic 0.2.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cyclotomic 0.2.0
[INFO] finished tweaking crates.io crate cyclotomic 0.2.0
[INFO] tweaked toml for crates.io crate cyclotomic 0.2.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] crate crates.io crate cyclotomic 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f4e55f48c6f502091df2b214860cb41ac10b2ebbc961b1b888e8f122419d697b
[INFO] running `Command { std: "docker" "start" "-a" "f4e55f48c6f502091df2b214860cb41ac10b2ebbc961b1b888e8f122419d697b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f4e55f48c6f502091df2b214860cb41ac10b2ebbc961b1b888e8f122419d697b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f4e55f48c6f502091df2b214860cb41ac10b2ebbc961b1b888e8f122419d697b", kill_on_drop: false }`
[INFO] [stdout] f4e55f48c6f502091df2b214860cb41ac10b2ebbc961b1b888e8f122419d697b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7f6f30a27079d17068b3d0095c5ebf1a12b2e61058af0981ecf339d7b04a1dc2
[INFO] running `Command { std: "docker" "start" "-a" "7f6f30a27079d17068b3d0095c5ebf1a12b2e61058af0981ecf339d7b04a1dc2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.132
[INFO] [stderr]    Compiling num-traits v0.2.15
[INFO] [stderr]    Compiling proc-macro2 v1.0.43
[INFO] [stderr]    Compiling unicode-ident v1.0.3
[INFO] [stderr]    Compiling num-integer v0.1.45
[INFO] [stderr]    Compiling memchr v2.3.4
[INFO] [stderr]    Compiling syn v1.0.99
[INFO] [stderr]    Compiling num-bigint v0.2.6
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.2.4
[INFO] [stderr]    Compiling num-iter v0.1.43
[INFO] [stderr]    Compiling quote v1.0.21
[INFO] [stderr]    Compiling log v0.4.17
[INFO] [stderr]    Compiling gmp-mpfr-sys v1.4.10
[INFO] [stderr]    Compiling radium v0.5.3
[INFO] [stderr]     Checking regex-syntax v0.6.27
[INFO] [stderr]    Compiling pkg-config v0.3.25
[INFO] [stderr]    Compiling az v1.2.1
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]    Compiling nom v6.2.1
[INFO] [stderr]     Checking os_str_bytes v6.3.0
[INFO] [stderr]     Checking ryu v1.0.11
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]    Compiling rug v1.17.0
[INFO] [stderr]     Checking wyz v0.2.0
[INFO] [stderr]     Checking arrayvec v0.5.2
[INFO] [stderr]     Checking funty v1.1.0
[INFO] [stderr]     Checking aho-corasick v0.7.15
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]     Checking once_cell v1.13.1
[INFO] [stderr]     Checking textwrap v0.15.0
[INFO] [stderr]     Checking sexp v1.1.4
[INFO] [stderr]     Checking rustc-hash v1.1.0
[INFO] [stderr]     Checking combinations v0.1.0
[INFO] [stderr]     Checking bitvec v0.19.6
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling jobserver v0.1.24
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling cc v1.0.73
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking regex v1.4.6
[INFO] [stderr]    Compiling antic v0.1.0
[INFO] [stderr]     Checking num v0.2.1
[INFO] [stderr]     Checking divisors v0.2.1
[INFO] [stderr]     Checking env_logger v0.7.1
[INFO] [stderr]     Checking quickcheck v0.9.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling clap_derive v3.2.17
[INFO] [stderr]    Compiling quickcheck_macros v0.9.1
[INFO] [stderr]     Checking clap v3.2.17
[INFO] [stderr]     Checking cyclotomic v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]    --> src/fields/sparse/basis.rs:213:57
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         &((k.clone() * n.clone()).into(): E / p.clone() + i.clone()),
[INFO] [stdout]     |                                                         ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]    --> src/fields/sparse/basis.rs:213:57
[INFO] [stdout]     |
[INFO] [stdout] 213 |                         &((k.clone() * n.clone()).into(): E / p.clone() + i.clone()),
[INFO] [stdout]     |                                                         ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]   --> src/fields/sparse/mul.rs:25:68
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let new_exp = ((exp1.clone() + exp2.clone()).into(): E) % z1.order.clone();
[INFO] [stdout]    |                                                                    ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: expected one of `)`, `,`, `.`, `?`, or an operator, found `:`
[INFO] [stdout]   --> src/fields/sparse/mul.rs:25:68
[INFO] [stdout]    |
[INFO] [stdout] 25 |                 let new_exp = ((exp1.clone() + exp2.clone()).into(): E) % z1.order.clone();
[INFO] [stdout]    |                                                                    ^ expected one of `)`, `,`, `.`, `?`, or an operator
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `BigRational`, `Signed`, `ToPrimitive`
[INFO] [stdout]  --> src/divisors/euclid.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use self::num::{BigInt, BigRational, Integer, One, Signed, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BigInt`
[INFO] [stdout]  --> src/divisors/library_divisors.rs:5:17
[INFO] [stdout]   |
[INFO] [stdout] 5 | use self::num::{BigInt, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/construct.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for i in 0..coefficient_numerators.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/display.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for i in 0..self.coefficients.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |         for i in 0..lhs.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |             for j in 0..rhs.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |         for i in 0..m + 1 {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:66:18
[INFO] [stdout]    |
[INFO] [stdout] 66 |         for i in 0..m + 1 {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:89:18
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..a0b0.coefficients.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/polynomial/substitute.rs:4:52
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::polynomial::polynomial::{Polynomial, Q, Z};
[INFO] [stdout]   |                                                    ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/polynomial/substitute.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 |         for j in 0..self.coefficients.len() {
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/prime_counter/legendre.rs:140:18
[INFO] [stdout]     |
[INFO] [stdout] 140 |         for i in 1..relevant_primes.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:62:41
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 let two_prime_pi_sum = ((a + 1)..(c + 1))
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                           (i..(1 + relevant_primes
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 65 | |                             .pi((x / relevant_primes.nth(i as usize).unwrap() as R).sqrt())))
[INFO] [stdout]    | |____________________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::BigInt`
[INFO] [stdout]  --> src/prime_factors/recursive_prime_factorize.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::BigInt;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/primes/primes.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for j in 0..vec.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Integer`
[INFO] [stdout]  --> src/fields/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::Integer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num::traits::Inv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpCoeffMap`
[INFO] [stdout]  --> src/fields/sparse/add.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::sparse::{ExpCoeffMap, Number};
[INFO] [stdout]   |                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Q`, `Z`
[INFO] [stdout]  --> src/fields/sparse/add.rs:4:67
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                   ^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::AddAssign`
[INFO] [stdout]  --> src/fields/sparse/add.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::AddAssign;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Q`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:4:73
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{CyclotomicFieldElement, MultiplicativeGroupElement, Q};
[INFO] [stdout]   |                                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/sparse/mod.rs:254:14
[INFO] [stdout]     |
[INFO] [stdout] 254 |     for _ in 1..=num_terms {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_i64` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^ help: convert the identifier to upper camel case: `NumberI64`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_Z` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^ help: convert the identifier to upper camel case: `NumberZ`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `Zero`
[INFO] [stdout]  --> src/fields/dense/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]  --> src/fields/dense/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::traits::Inv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::*`
[INFO] [stdout]   --> src/fields/dense/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::fields::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::exponent::Exponent`
[INFO] [stdout]   --> src/fields/dense/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::fields::exponent::Exponent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/fields/dense/add.rs:2:70
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/add.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |         for exp in 0..z1.order {
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/basis.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     for exp in 0..z.order {
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/basis.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |         for exp in 1..new_order {
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/dense/basis.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |         for bad_exp_raw in start_bad..=end_bad {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/dense/basis.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |             for a in -bad_exp / q - 1..=((n - 1 - bad_exp) / q + 1) {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/dense/basis.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |                 for k in 1..*p {
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/dense/galois.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/galois.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     for exp in 0..z.order {
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mul.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 |         for i in 0..z1.order {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mul.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 |             for j in 0..z2.order {
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mul.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |         for i in 2..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mod.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     for exp in 0..z.order {
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mod.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |         for _new_exp in 0..new_order {
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mod.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for old_exp in 0..z.order {
[INFO] [stdout]    |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/dense/mod.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout] 131 |         for i in 0..z1.order {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/dense/mod.rs:169:20
[INFO] [stdout]     |
[INFO] [stdout] 169 |         for exp in 1..n {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/dense/mod.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |     for _ in 1..=num_terms {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/structure/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]  --> src/fields/structure/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     for i in 0..phi_n {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:59:14
[INFO] [stdout]    |
[INFO] [stdout] 59 |     for i in 0..phi_n {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:60:18
[INFO] [stdout]    |
[INFO] [stdout] 60 |         for j in 0..phi_n {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 for bad_exp in (q / 2)..q - 1 + 1 {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:86:32
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 for bad_exp in -(q / *p - 1) / 2..(q / *p - 1) / 2 + 1 {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:96:6
[INFO] [stdout]    |
[INFO] [stdout] 96 |     (0..order).filter(|i| is_in_basis(*i)).collect()
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:126:18
[INFO] [stdout]     |
[INFO] [stdout] 126 |         for i in 0..self.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:135:18
[INFO] [stdout]     |
[INFO] [stdout] 135 |         for i in 0..self.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |             for j in 0..self.phi_n {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:137:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 for k in 0..self.phi_n {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:152:18
[INFO] [stdout]     |
[INFO] [stdout] 152 |         for i in 0..self.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:185:14
[INFO] [stdout]     |
[INFO] [stdout] 185 |     for _ in 0..field.phi_n {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldElement`
[INFO] [stdout]  --> src/fields/linear_algebra/mod.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::fields::{CyclotomicFieldElement, FieldElement};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 |         for i in 0..N {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:59:18
[INFO] [stdout]    |
[INFO] [stdout] 59 |         for i in 0..N {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:60:22
[INFO] [stdout]    |
[INFO] [stdout] 60 |             for j in 0..L {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 for k in 0..M {
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:76:18
[INFO] [stdout]    |
[INFO] [stdout] 76 |         for i in 0..mA.value.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |         for i in 0..N {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |             for j in 0..M {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/linear_algebra/mod.rs:123:18
[INFO] [stdout]     |
[INFO] [stdout] 123 |         for i in 0..v1.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `MulAssign`
[INFO] [stdout]  --> src/fields/rational.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::{AddAssign, MulAssign};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::Q`
[INFO] [stdout]  --> src/character/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::Q;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/character/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in 0..chi1.len() {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/sparse/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BigInt`, `BigRational`, `Signed`, `ToPrimitive`
[INFO] [stdout]  --> src/divisors/euclid.rs:3:17
[INFO] [stdout]   |
[INFO] [stdout] 3 | use self::num::{BigInt, BigRational, Integer, One, Signed, ToPrimitive, Zero};
[INFO] [stdout]   |                 ^^^^^^  ^^^^^^^^^^^                ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/construct.rs:15:18
[INFO] [stdout]    |
[INFO] [stdout] 15 |         for i in 0..coefficient_numerators.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/polynomial/construct.rs:48:9
[INFO] [stdout]    |
[INFO] [stdout] 48 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/display.rs:73:18
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for i in 0..self.coefficients.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:10:18
[INFO] [stdout]    |
[INFO] [stdout] 10 |         for i in 0..lhs.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:11:22
[INFO] [stdout]    |
[INFO] [stdout] 11 |             for j in 0..rhs.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:62:18
[INFO] [stdout]    |
[INFO] [stdout] 62 |         for i in 0..m + 1 {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:66:18
[INFO] [stdout]    |
[INFO] [stdout] 66 |         for i in 0..m + 1 {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/polynomial/multiply.rs:89:18
[INFO] [stdout]    |
[INFO] [stdout] 89 |         for i in 0..a0b0.coefficients.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]   --> src/polynomial/negate.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     use super::*;
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/polynomial/substitute.rs:9:18
[INFO] [stdout]   |
[INFO] [stdout] 9 |         for j in 0..self.coefficients.len() {
[INFO] [stdout]   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/prime_counter/legendre.rs:140:18
[INFO] [stdout]     |
[INFO] [stdout] 140 |         for i in 1..relevant_primes.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/prime_counter/legendre.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:62:41
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 let two_prime_pi_sum = ((a + 1)..(c + 1))
[INFO] [stdout]    |                                         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:64:26
[INFO] [stdout]    |
[INFO] [stdout] 64 |                           (i..(1 + relevant_primes
[INFO] [stdout]    |  __________________________^
[INFO] [stdout] 65 | |                             .pi((x / relevant_primes.nth(i as usize).unwrap() as R).sqrt())))
[INFO] [stdout]    | |____________________________________________________________________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/prime_counter/lehmer.rs:88:9
[INFO] [stdout]    |
[INFO] [stdout] 88 |     use std::path::Path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]   --> src/prime_counter/meissel.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 73 |     use std::path::Path;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/primes/primes.rs:33:18
[INFO] [stdout]    |
[INFO] [stdout] 33 |         for j in 0..vec.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]    --> src/primes/primes.rs:165:9
[INFO] [stdout]     |
[INFO] [stdout] 165 |     use std::path::Path;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Integer`
[INFO] [stdout]  --> src/fields/mod.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use num::Integer;
[INFO] [stdout]   |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `One`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num::traits::Inv;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:14:24
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpCoeffMap`
[INFO] [stdout]  --> src/fields/sparse/add.rs:3:29
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::sparse::{ExpCoeffMap, Number};
[INFO] [stdout]   |                             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Q`, `Z`
[INFO] [stdout]  --> src/fields/sparse/add.rs:4:67
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                   ^  ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::AddAssign`
[INFO] [stdout]  --> src/fields/sparse/add.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::AddAssign;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/galois.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Q`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:4:73
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::{CyclotomicFieldElement, MultiplicativeGroupElement, Q};
[INFO] [stdout]   |                                                                         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryInto`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::convert::TryInto;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/sparse/mod.rs:254:14
[INFO] [stdout]     |
[INFO] [stdout] 254 |     for _ in 1..=num_terms {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_i64` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:276:6
[INFO] [stdout]     |
[INFO] [stdout] 276 | type Number_i64 = Number<i64, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^^^ help: convert the identifier to upper camel case: `NumberI64`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_camel_case_types)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `Number_Z` should have an upper camel case name
[INFO] [stdout]    --> src/fields/sparse/mod.rs:277:6
[INFO] [stdout]     |
[INFO] [stdout] 277 | type Number_Z = Number<Z, rug::Rational>;
[INFO] [stdout]     |      ^^^^^^^^ help: convert the identifier to upper camel case: `NumberZ`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `One`, `Zero`
[INFO] [stdout]  --> src/fields/dense/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                 ^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::traits::Inv`
[INFO] [stdout]  --> src/fields/dense/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use num::traits::Inv;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `SubAssign`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                ^^^^^^^^^       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::exponent::Exponent`
[INFO] [stdout]   --> src/fields/dense/mod.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | use crate::fields::exponent::Exponent;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Z`
[INFO] [stdout]  --> src/fields/dense/add.rs:2:70
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::fields::{AdditiveGroupElement, CyclotomicFieldElement, Q, Z};
[INFO] [stdout]   |                                                                      ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/add.rs:14:20
[INFO] [stdout]    |
[INFO] [stdout] 14 |         for exp in 0..z1.order {
[INFO] [stdout]    |                    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/basis.rs:22:16
[INFO] [stdout]    |
[INFO] [stdout] 22 |     for exp in 0..z.order {
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/basis.rs:79:20
[INFO] [stdout]    |
[INFO] [stdout] 79 |         for exp in 1..new_order {
[INFO] [stdout]    |                    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/dense/basis.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |         for bad_exp_raw in start_bad..=end_bad {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/dense/basis.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |             for a in -bad_exp / q - 1..=((n - 1 - bad_exp) / q + 1) {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/dense/basis.rs:166:26
[INFO] [stdout]     |
[INFO] [stdout] 166 |                 for k in 1..*p {
[INFO] [stdout]     |                          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/dense/galois.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/galois.rs:12:16
[INFO] [stdout]    |
[INFO] [stdout] 12 |     for exp in 0..z.order {
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/dense/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mul.rs:21:18
[INFO] [stdout]    |
[INFO] [stdout] 21 |         for i in 0..z1.order {
[INFO] [stdout]    |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mul.rs:22:22
[INFO] [stdout]    |
[INFO] [stdout] 22 |             for j in 0..z2.order {
[INFO] [stdout]    |                      ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mul.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |         for i in 2..n {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mod.rs:38:16
[INFO] [stdout]    |
[INFO] [stdout] 38 |     for exp in 0..z.order {
[INFO] [stdout]    |                ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mod.rs:66:25
[INFO] [stdout]    |
[INFO] [stdout] 66 |         for _new_exp in 0..new_order {
[INFO] [stdout]    |                         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/dense/mod.rs:69:24
[INFO] [stdout]    |
[INFO] [stdout] 69 |         for old_exp in 0..z.order {
[INFO] [stdout]    |                        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/dense/mod.rs:131:18
[INFO] [stdout]     |
[INFO] [stdout] 131 |         for i in 0..z1.order {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/dense/mod.rs:169:20
[INFO] [stdout]     |
[INFO] [stdout] 169 |         for exp in 1..n {
[INFO] [stdout]     |                    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/fields/dense/mod.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |     for _ in 1..=num_terms {
[INFO] [stdout]     |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::util::*`
[INFO] [stdout]  --> src/fields/structure/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::fields::util::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:43:14
[INFO] [stdout]    |
[INFO] [stdout] 43 |     for i in 0..phi_n {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:59:14
[INFO] [stdout]    |
[INFO] [stdout] 59 |     for i in 0..phi_n {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:60:18
[INFO] [stdout]    |
[INFO] [stdout] 60 |         for j in 0..phi_n {
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:80:32
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 for bad_exp in (q / 2)..q - 1 + 1 {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:86:32
[INFO] [stdout]    |
[INFO] [stdout] 86 |                 for bad_exp in -(q / *p - 1) / 2..(q / *p - 1) / 2 + 1 {
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/structure/mod.rs:96:6
[INFO] [stdout]    |
[INFO] [stdout] 96 |     (0..order).filter(|i| is_in_basis(*i)).collect()
[INFO] [stdout]    |      ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:126:18
[INFO] [stdout]     |
[INFO] [stdout] 126 |         for i in 0..self.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:135:18
[INFO] [stdout]     |
[INFO] [stdout] 135 |         for i in 0..self.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |             for j in 0..self.phi_n {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:137:26
[INFO] [stdout]     |
[INFO] [stdout] 137 |                 for k in 0..self.phi_n {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:152:18
[INFO] [stdout]     |
[INFO] [stdout] 152 |         for i in 0..self.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:185:14
[INFO] [stdout]     |
[INFO] [stdout] 185 |     for _ in 0..field.phi_n {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:207:18
[INFO] [stdout]     |
[INFO] [stdout] 207 |         for i in 0..field.phi_n {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/structure/mod.rs:208:22
[INFO] [stdout]     |
[INFO] [stdout] 208 |             for j in 0..field.phi_n {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `FieldElement`
[INFO] [stdout]  --> src/fields/linear_algebra/mod.rs:1:45
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::fields::{CyclotomicFieldElement, FieldElement};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:28:18
[INFO] [stdout]    |
[INFO] [stdout] 28 |         for i in 0..N {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:59:18
[INFO] [stdout]    |
[INFO] [stdout] 59 |         for i in 0..N {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:60:22
[INFO] [stdout]    |
[INFO] [stdout] 60 |             for j in 0..L {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:62:26
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 for k in 0..M {
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:76:18
[INFO] [stdout]    |
[INFO] [stdout] 76 |         for i in 0..mA.value.len() {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:93:18
[INFO] [stdout]    |
[INFO] [stdout] 93 |         for i in 0..N {
[INFO] [stdout]    |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/fields/linear_algebra/mod.rs:94:22
[INFO] [stdout]    |
[INFO] [stdout] 94 |             for j in 0..M {
[INFO] [stdout]    |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/fields/linear_algebra/mod.rs:123:18
[INFO] [stdout]     |
[INFO] [stdout] 123 |         for i in 0..v1.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AddAssign`, `MulAssign`
[INFO] [stdout]  --> src/fields/rational.rs:6:16
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::{AddAssign, MulAssign};
[INFO] [stdout]   |                ^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::Q`
[INFO] [stdout]  --> src/character/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::fields::Q;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/character/mod.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 |     for i in 0..chi1.len() {
[INFO] [stdout]    |              ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/sparse/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[macro_use]` only has an effect on `extern crate` and modules
[INFO] [stdout]   --> src/fields/dense/mod.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | #[macro_use]
[INFO] [stdout]    | ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&E: Exponent` is not satisfied
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ the trait `Exponent` is not implemented for `&E`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = &Exponent::math_mod(
[INFO] [stdout]     |                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `E` cannot be shared between threads safely
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ `E` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&E` to implement `Send`
[INFO] [stdout] note: required by a bound in `Exponent::math_mod`
[INFO] [stdout]    --> src/fields/exponent.rs:24:7
[INFO] [stdout]     |
[INFO] [stdout] 24  |     + Send
[INFO] [stdout]     |       ^^^^ required by this bound in `Exponent::math_mod`
[INFO] [stdout] ...
[INFO] [stdout] 75  |     fn math_mod(x: &Self, n: &Self) -> Self {
[INFO] [stdout]     |        -------- required by a bound in this associated function
[INFO] [stdout] help: consider further restricting this bound
[INFO] [stdout]     |
[INFO] [stdout] 120 |     E: Exponent + std::marker::Sync,
[INFO] [stdout]     |                 +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Div`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sub`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::MultiplicativeGroupElement`
[INFO] [stdout]  --> src/fields/dense/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::fields::MultiplicativeGroupElement;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | use crate::fields::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/polynomial/subtract.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{AddAssign, Neg, Sub, SubAssign};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]   --> src/fields/sparse/basis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::Mul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fields::MultiplicativeGroupElement`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::fields::MultiplicativeGroupElement;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `&E: exponent::Exponent` is not satisfied
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ the trait `exponent::Exponent` is not implemented for `&E`
[INFO] [stdout]     |
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = &Exponent::math_mod(
[INFO] [stdout]     |                                   +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `E` cannot be shared between threads safely
[INFO] [stdout]    --> src/fields/sparse/basis.rs:212:35
[INFO] [stdout]     |
[INFO] [stdout] 212 |                     let new_exp = Exponent::math_mod(
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^ `E` cannot be shared between threads safely
[INFO] [stdout]     |
[INFO] [stdout]     = note: required for `&E` to implement `Send`
[INFO] [stdout] note: required by a bound in `exponent::Exponent::math_mod`
[INFO] [stdout]    --> src/fields/exponent.rs:24:7
[INFO] [stdout]     |
[INFO] [stdout] 24  |     + Send
[INFO] [stdout]     |       ^^^^ required by this bound in `Exponent::math_mod`
[INFO] [stdout] ...
[INFO] [stdout] 75  |     fn math_mod(x: &Self, n: &Self) -> Self {
[INFO] [stdout]     |        -------- required by a bound in this associated function
[INFO] [stdout] help: consider further restricting this bound
[INFO] [stdout]     |
[INFO] [stdout] 120 |     E: Exponent + std::marker::Sync,
[INFO] [stdout]     |                 +++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/dense/basis.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut n_div_powers = Exponent::factorise(&n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/fields/rational.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 158 |         self.is_zero()
[INFO] [stdout]     |         -------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser.rs:30:45
[INFO] [stdout]    |
[INFO] [stdout] 30 |         FromStr::from_str((sign.map_or("", |s| "-").to_owned() + x).as_str())
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 100 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cyclotomic` (lib) due to 5 previous errors; 100 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/mul.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Div`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sub`
[INFO] [stdout]  --> src/divisors/euclid.rs:5:21
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Div, Sub};
[INFO] [stdout]   |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `num::Zero`
[INFO] [stdout]  --> src/fields/structure/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Zero`
[INFO] [stdout]  --> src/fields/sparse/mod.rs:4:22
[INFO] [stdout]   |
[INFO] [stdout] 4 | use self::num::{One, Zero};
[INFO] [stdout]   |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::num::Zero`
[INFO] [stdout]  --> src/fields/sparse/basis.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::num::Zero;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/dense/mod.rs:13:27
[INFO] [stdout]    |
[INFO] [stdout] 13 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Neg`
[INFO] [stdout]  --> src/polynomial/subtract.rs:1:27
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::ops::{AddAssign, Neg, Sub, SubAssign};
[INFO] [stdout]   |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mul`
[INFO] [stdout]   --> src/fields/sparse/mod.rs:16:27
[INFO] [stdout]    |
[INFO] [stdout] 16 | use std::ops::{AddAssign, Mul, SubAssign};
[INFO] [stdout]    |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Mul`
[INFO] [stdout]   --> src/fields/sparse/basis.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::ops::Mul;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fields/dense/basis.rs:136:9
[INFO] [stdout]     |
[INFO] [stdout] 136 |     let mut n_div_powers = Exponent::factorise(&n);
[INFO] [stdout]     |         ----^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function cannot return without recursing
[INFO] [stdout]    --> src/fields/rational.rs:157:5
[INFO] [stdout]     |
[INFO] [stdout] 157 |     fn is_zero(&self) -> bool {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
[INFO] [stdout] 158 |         self.is_zero()
[INFO] [stdout]     |         -------------- recursive call site
[INFO] [stdout]     |
[INFO] [stdout]     = help: a `loop` may express intention better if this is on purpose
[INFO] [stdout]     = note: `#[warn(unconditional_recursion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]   --> src/parser.rs:30:45
[INFO] [stdout]    |
[INFO] [stdout] 30 |         FromStr::from_str((sign.map_or("", |s| "-").to_owned() + x).as_str())
[INFO] [stdout]    |                                             ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors; 102 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cyclotomic` (lib test) due to 5 previous errors; 102 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "7f6f30a27079d17068b3d0095c5ebf1a12b2e61058af0981ecf339d7b04a1dc2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f6f30a27079d17068b3d0095c5ebf1a12b2e61058af0981ecf339d7b04a1dc2", kill_on_drop: false }`
[INFO] [stdout] 7f6f30a27079d17068b3d0095c5ebf1a12b2e61058af0981ecf339d7b04a1dc2
